2025-03-07 07:42:17,194 - INFO - Num classes: 3
2025-03-07 07:46:57,458 - INFO - Class weights: tensor([0.5653, 2.7400, 1.1546], device='cuda:0')
2025-03-07 07:46:57,462 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-03-07 07:46:57,462 - INFO - Using cuda device
2025-03-07 12:58:18,434 - INFO - Num classes: 3
2025-03-07 13:03:28,127 - INFO - Class weights: tensor([0.5653, 2.7400, 1.1546], device='cuda:0')
2025-03-07 13:03:28,134 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-03-07 13:03:28,134 - INFO - Using cuda device
2025-03-10 13:43:58,275 - INFO - Num classes: 3
2025-03-10 13:48:45,634 - INFO - Class weights: tensor([0.5653, 2.7400, 1.1546], device='cuda:0')
2025-03-10 13:48:45,638 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-03-10 13:48:45,638 - INFO - Using cuda device
2025-03-10 13:56:09,964 - INFO - Epoch: 0/100. Training time: 294.772
2025-03-10 13:56:09,965 - INFO - Training Metrics...
2025-03-10 13:56:09,966 - INFO - {'loss': 0.9890832422645228, 'f1': 41.11764731707603, 'acc': 43.46862102723255, 'precision': 50.655463657680144, 'recall': 54.17505236381962, 'balanced acc': 54.17505236381962}
2025-03-10 13:56:09,966 - INFO - Validation Metrics... Inference time: 149.548
2025-03-10 13:56:09,967 - INFO - {'loss': 1.071958526586875, 'f1': 40.76929554623499, 'acc': 42.8625852384223, 'precision': 54.602213355829775, 'recall': 56.596967974524624, 'balanced acc': 56.596967974524624}
2025-03-10 13:56:09,967 - INFO - ==================================================
2025-03-10 14:33:07,052 - INFO - Epoch: 5/100. Training time: 292.325
2025-03-10 14:33:07,053 - INFO - Training Metrics...
2025-03-10 14:33:07,053 - INFO - {'loss': 0.7934883066043732, 'f1': 60.162549801496866, 'acc': 65.78210304822566, 'precision': 61.667615746723904, 'recall': 69.37506065902154, 'balanced acc': 69.37506065902154}
2025-03-10 14:33:07,053 - INFO - Validation Metrics... Inference time: 151.188
2025-03-10 14:33:07,053 - INFO - {'loss': 0.6620010917003338, 'f1': 62.978285304132875, 'acc': 75.10989522010728, 'precision': 64.05911275422747, 'recall': 68.93933552935246, 'balanced acc': 68.93933552935246}
2025-03-10 14:33:07,053 - INFO - ==================================================
2025-03-10 15:10:05,738 - INFO - Epoch: 10/100. Training time: 291.731
2025-03-10 15:10:05,739 - INFO - Training Metrics...
2025-03-10 15:10:05,739 - INFO - {'loss': 0.7199337212902726, 'f1': 66.60242945888146, 'acc': 72.82515862634862, 'precision': 66.25467834429696, 'recall': 71.18060617572958, 'balanced acc': 71.18060617572958}
2025-03-10 15:10:05,739 - INFO - Validation Metrics... Inference time: 153.379
2025-03-10 15:10:05,739 - INFO - {'loss': 0.5797316951629443, 'f1': 64.52724011972822, 'acc': 77.27151708038986, 'precision': 65.73787967538112, 'recall': 70.11165508592251, 'balanced acc': 70.11165508592251}
2025-03-10 15:10:05,739 - INFO - ==================================================
2025-03-10 15:47:09,709 - INFO - Epoch: 15/100. Training time: 297.294
2025-03-10 15:47:09,710 - INFO - Training Metrics...
2025-03-10 15:47:09,710 - INFO - {'loss': 0.6481043677421132, 'f1': 69.57403171444693, 'acc': 76.45492960321072, 'precision': 69.02739230189205, 'recall': 73.90584033336465, 'balanced acc': 73.90584033336465}
2025-03-10 15:47:09,710 - INFO - Validation Metrics... Inference time: 150.712
2025-03-10 15:47:09,710 - INFO - {'loss': 0.5199728256616837, 'f1': 68.8592388400356, 'acc': 81.6766520310047, 'precision': 68.18973368538033, 'recall': 72.44366825250556, 'balanced acc': 72.44366825250556}
2025-03-10 15:47:09,710 - INFO - ==================================================
2025-03-10 16:24:21,801 - INFO - Epoch: 20/100. Training time: 293.333
2025-03-10 16:24:21,801 - INFO - Training Metrics...
2025-03-10 16:24:21,802 - INFO - {'loss': 0.649048912677036, 'f1': 67.38666925350877, 'acc': 74.16505366079552, 'precision': 67.77153321679205, 'recall': 73.44462946800198, 'balanced acc': 73.44462946800198}
2025-03-10 16:24:21,802 - INFO - Validation Metrics... Inference time: 153.476
2025-03-10 16:24:21,802 - INFO - {'loss': 0.5033278587536935, 'f1': 69.00449146700706, 'acc': 81.57582744636316, 'precision': 68.46391040190949, 'recall': 73.0640544910009, 'balanced acc': 73.0640544910009}
2025-03-10 16:24:21,802 - INFO - ==================================================
2025-03-10 17:01:28,500 - INFO - Epoch: 25/100. Training time: 295.892
2025-03-10 17:01:28,500 - INFO - Training Metrics...
2025-03-10 17:01:28,500 - INFO - {'loss': 0.6340309647238178, 'f1': 69.21705040840335, 'acc': 74.30683484580138, 'precision': 69.14411269489669, 'recall': 74.72175914849875, 'balanced acc': 74.72175914849875}
2025-03-10 17:01:28,500 - INFO - Validation Metrics... Inference time: 150.179
2025-03-10 17:01:28,501 - INFO - {'loss': 0.5589848114893987, 'f1': 65.79751877250429, 'acc': 76.6563746892988, 'precision': 66.52537494242459, 'recall': 73.45518578346653, 'balanced acc': 73.45518578346653}
2025-03-10 17:01:28,501 - INFO - ==================================================
2025-03-10 17:38:43,382 - INFO - Epoch: 30/100. Training time: 294.434
2025-03-10 17:38:43,382 - INFO - Training Metrics...
2025-03-10 17:38:43,382 - INFO - {'loss': 0.5899477118899108, 'f1': 70.19481400359075, 'acc': 76.90987596272586, 'precision': 69.8391663693522, 'recall': 76.79837387555921, 'balanced acc': 76.79837387555921}
2025-03-10 17:38:43,382 - INFO - Validation Metrics... Inference time: 151.138
2025-03-10 17:38:43,382 - INFO - {'loss': 0.5036963178561285, 'f1': 69.22122089376691, 'acc': 80.14716403388277, 'precision': 69.28799446162598, 'recall': 75.34378710321877, 'balanced acc': 75.34378710321877}
2025-03-10 17:38:43,382 - INFO - ==================================================
2025-03-10 18:15:52,050 - INFO - Epoch: 35/100. Training time: 294.053
2025-03-10 18:15:52,051 - INFO - Training Metrics...
2025-03-10 18:15:52,051 - INFO - {'loss': 0.5596084450460543, 'f1': 72.30915113904214, 'acc': 78.87945260707787, 'precision': 71.80062140334888, 'recall': 78.39685734158232, 'balanced acc': 78.39685734158232}
2025-03-10 18:15:52,051 - INFO - Validation Metrics... Inference time: 150.969
2025-03-10 18:15:52,051 - INFO - {'loss': 0.4941391020249098, 'f1': 67.6166125711331, 'acc': 79.83495531626113, 'precision': 68.88367691869158, 'recall': 72.13196069820177, 'balanced acc': 72.13196069820177}
2025-03-10 18:15:52,051 - INFO - ==================================================
2025-03-10 18:52:55,432 - INFO - Epoch: 40/100. Training time: 295.119
2025-03-10 18:52:55,432 - INFO - Training Metrics...
2025-03-10 18:52:55,432 - INFO - {'loss': 0.5787771469468523, 'f1': 72.48623006880018, 'acc': 78.26574026306383, 'precision': 72.33830588665047, 'recall': 77.15944585753742, 'balanced acc': 77.15944585753742}
2025-03-10 18:52:55,433 - INFO - Validation Metrics... Inference time: 149.883
2025-03-10 18:52:55,433 - INFO - {'loss': 0.5065975815821917, 'f1': 69.23300769588104, 'acc': 79.51607776524071, 'precision': 68.94481204142383, 'recall': 76.7305718596999, 'balanced acc': 76.7305718596999}
2025-03-10 18:52:55,433 - INFO - ==================================================
2025-03-10 19:30:04,004 - INFO - Epoch: 45/100. Training time: 294.758
2025-03-10 19:30:04,004 - INFO - Training Metrics...
2025-03-10 19:30:04,004 - INFO - {'loss': 0.5892534183848436, 'f1': 72.13053832258004, 'acc': 77.92549842389185, 'precision': 70.7840169648695, 'recall': 76.75542175989959, 'balanced acc': 76.75542175989959}
2025-03-10 19:30:04,004 - INFO - Validation Metrics... Inference time: 151.316
2025-03-10 19:30:04,004 - INFO - {'loss': 0.5167476015213208, 'f1': 68.77190847060083, 'acc': 79.20667966705913, 'precision': 69.16113715532762, 'recall': 75.18814251757459, 'balanced acc': 75.18814251757459}
2025-03-10 19:30:04,004 - INFO - ==================================================
2025-03-10 19:52:22,851 - INFO - Early stopping criterion met. Stopping training.
2025-03-10 19:54:57,724 - INFO - Final test metrics:
{'f1': 72.28814737558392, 'acc': 83.16827331894297, 'precision': 70.40556926236414, 'recall': 76.07029738594063, 'balanced acc': 76.07029738594063}
2025-03-20 07:22:41,836 - INFO - Num classes: 3
2025-03-20 07:22:41,962 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-03-20 07:22:41,962 - INFO - Using cuda device
2025-03-20 07:22:41,986 - INFO - Training parameters restored at epoch 28
2025-03-20 07:22:41,994 - INFO - Initializing final Evaluations:

2025-03-20 07:25:09,556 - INFO - Final validation metrics:
{'f1': 72.28814737558392, 'acc': 83.16827331894297, 'precision': 70.40556926236414, 'recall': 76.07029738594063, 'balanced acc': 76.07029738594063}
2025-03-20 07:26:43,774 - INFO - Final test pixel-wise classification metrics:
{'f1': 74.73704019367204, 'acc': 77.53684189663171, 'precision': 74.77957244492472, 'recall': 77.80637411618298, 'balanced acc': 77.80637411618298}
2025-04-05 02:42:31,778 - INFO - Num classes: 3
2025-04-05 02:42:31,781 - INFO - Class weights: None
2025-04-05 02:42:31,906 - INFO - Model architecture:
ImprovedHyperspectralLogisticRegressionModel(
  (spectral_attention): SpectralAttention(
    (fc): Sequential(
      (0): Linear(in_features=1080, out_features=67, bias=True)
      (1): ReLU(inplace=True)
      (2): Linear(in_features=67, out_features=1080, bias=True)
      (3): Sigmoid()
    )
  )
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
  (logistic): Linear(in_features=3, out_features=3, bias=True)
)
2025-04-05 02:42:31,906 - INFO - Using cuda device
2025-04-05 02:42:31,914 - INFO - Initializing final Evaluations:

